Go는 기본적으로 Testing 패키지를 가지고 있습니다. Go로 테스트 코드를 짜는 방법을 한번 확인해 보겠습니다.
testing - The Go Programming Language
_Package testing provides support for automated testing of Go packages. It is intended to be used in concert with the…_golang.org
기본적으로 세가지의 테스트 방법을 지원합니다.
- testing
- benchmark
- example
이렇게 세가지 입니다.
파일은 반드시 _test.go 형식으로 끝나는 파일만
go test -v [파일명]
명령어를 통해 실행되어집니다.
testing
func TestXxx(\*testing.T)
의 함수 모양을 가져야 합니다. 실행을 할 때는 스크립트 처럼 순차적으로 진행됩니다.
assertion 계열의 문법은 사용하지 않으면 testing 파일 안에서 자유롭게 문법을 사용하다가 에러가 날 조건들이 생길 경우는
t.Error("여기서 에러 발생")
과 같은 형식으로 에러를 발생시킬 수 있습니다.
benchmark
benchmark 옵션은 실행속도를 확인할 수 있습니다.
func BenchmarkXxx(\*testing.B)
형태로 함수가 정의되어 있습니다.
go test -v [파일명] -bench [regexp]
같은 형태로 뒤에 bench option 을 주는게 중요합니다.
BenchmarkZ-4 10000000 138 ns/op
BenchmarkA-4 10000000 143 ns/op
와 같이 output 이 나옵니다.
example
example 은 예제를 만들어 테스트 처럼 사용할 수 있습니다.
func Example\_suffix() { ... }
func ExampleF\_suffix() { ... }
func ExampleT\_suffix() { ... }
func ExampleT\_M\_suffix() { ... }
Example 접두어만 주면 실행이 됩니다.
중요!
함수 내에 아래와 같은 형식이 없으면 실행되지 않습니다.
func ExampleSalutations() {
fmt.Println("hello, and")
fmt.Println("goodbye")
// Output:
// hello, and
// goodbye
}
Output:
이부분이 중요합니다.
실행순서
test->example->benchmark 순으로 실행됩니다.
By Keen Dev on February 27, 2016.
Exported from Medium on May 31, 2017.